export default {
    install: function (Vue) {

        // 任务状态
        Vue.prototype.MISSION_RUNNING_STATE_UN_KNOW = {
            label: '未知',
            value: 1
        };
        Vue.prototype.MISSION_RUNNING_STATE_WAITING = {
            label: '等待开始',
            value: 0
        };
        Vue.prototype.MISSION_RUNNING_STATE_RUNNING = {
            label: '正在进行',
            value: 1
        };
        Vue.prototype.MISSION_RUNNING_STATE_ENDED = {
            label: '已经结束',
            value: 2
        };
        // 返回运行状态
        Vue.prototype.returnMissionRunningState = function (state) {
            if (state===null||state===undefined) {
                return Vue.prototype.MISSION_RUNNING_STATE_UN_KNOW.label;
            }
            switch (state) {
                case 0:
                    return Vue.prototype.MISSION_RUNNING_STATE_WAITING.label;
                case 1:
                    return Vue.prototype.MISSION_RUNNING_STATE_RUNNING.label;
                case 2:
                    return Vue.prototype.MISSION_RUNNING_STATE_ENDED.label;
            }
        };


        // 证件类型
        Vue.prototype.TIME_TYPE_CAR = {
            label: '车辆类型',
            value: 0
        };
        Vue.prototype.TIME_TYPE_DRIVER = {
            label: '驾驶员类型',
            value: 1
        };
        Vue.prototype.TIME_TYPE_MONEY = {
            label: '费用类型',
            value: 2
        };

        // 预设词类型

        Vue.prototype.TYPE_MISSION_SOURCE = {
            label: '任务来源',
            value: 0
        };
        Vue.prototype.TYPE_MISSION_UNIT = {
            label: '用车单位',
            value: 1
        };
        Vue.prototype.TYPE_MISSION_TYPE = {
            label: '派车性质',
            value: 2
        };
        Vue.prototype.TYPE_MISSION_CAR_TYPE = {
            label: '适用车型',
            value: 3
        };
        Vue.prototype.TYPE_CAR_MODEL = {
            label: '车辆型号',
            value: 4
        };
        Vue.prototype.TYPE_CAR_COLOR = {
            label: '车身颜色',
            value: 5
        };
        Vue.prototype.TYPE_CAR_DIS = {
            label: '车辆排量',
            value: 6
        };
        Vue.prototype.TYPE_CAR_POWER = {
            label: '车辆功率',
            value: 7
        };
        Vue.prototype.TYPE_CAR_OIL = {
            label: '燃油种类',
            value: 8
        };
        Vue.prototype.TYPE_CAR_TURN_TYPE = {
            label: '转向形式',
            value: 9
        };
        Vue.prototype.TYPE_CAR_PEOPLE_COUNT = {
            label: '核定载客',
            value: 10
        };
        Vue.prototype.TYPE_CAR_LEVEL = {
            label: '类型等级',
            value: 11
        };
        Vue.prototype.TYPE_CAR_SCOPE = {
            label: '经营范围',
            value: 12
        };
        Vue.prototype.TYPE_CAR_RESOURCE = {
            label: '车源',
            value: 13
        };
        Vue.prototype.TYPE_TIME_TITLE = {
            label: '时效证件',
            value: 14
        };
        Vue.prototype.TYPE_CAR = {
            label: '车辆类型',
            value: 15
        };

        /**
         * 预设词管理
         * @type {*[][]}
         */
        Vue.prototype.selectsTypes = [

            Vue.prototype.TYPE_MISSION_SOURCE,
            Vue.prototype.TYPE_MISSION_UNIT,
            Vue.prototype.TYPE_MISSION_TYPE,
            Vue.prototype.TYPE_MISSION_CAR_TYPE,
            Vue.prototype.TYPE_CAR_MODEL,
            Vue.prototype.TYPE_CAR_COLOR,
            Vue.prototype.TYPE_CAR_DIS,
            Vue.prototype.TYPE_CAR_POWER,
            Vue.prototype.TYPE_CAR_OIL,
            Vue.prototype.TYPE_CAR_TURN_TYPE,
            Vue.prototype.TYPE_CAR_PEOPLE_COUNT,
            Vue.prototype.TYPE_CAR_LEVEL,
            Vue.prototype.TYPE_CAR_SCOPE,
            Vue.prototype.TYPE_CAR_RESOURCE,
            Vue.prototype.TYPE_TIME_TITLE,
            Vue.prototype.TYPE_CAR
        ];

        /**
         * 所有的选择框
         * @type {*[]}
         */
        Vue.prototype.selects = [
            [],
            [],
            [],
            [],
            [],
            [],
            [],
            [],
            [],
            [],
        ];

        Vue.prototype.getSelects = function (type) {
            if (type) {
                return [];
            }
            var index = parseInt(type);
            if (!index) {
                return [];
            }
            var list = this.selects[index];
            if (!list) {
                return [];
            }
            return list;
        };

        Vue.prototype.saveSelects = function (type, list) {
            if (type) {
                return;
            }
            var index = parseInt(type);
            if (!index) {
                return;
            }
            if (list) {
                return;
            }
            this.selects[index] = list;
        };


        /**
         *
         * 跳转可用的路由
         */
        Vue.prototype.jumpValidMenu = function () {
            // 根据权限列表跳转
            if (this.canMission()) {
                this.pushUrl('/car_cost');
                return;
            }
            if (this.canCar()) {
                this.pushUrl('/car');
                return;
            }
            if (this.canDriver()) {
                this.pushUrl('/driver');
                return;
            }
            if (this.canTimeCar()) {
                this.pushUrl('/time_car');
                return;
            }
            if (this.canTimeDriver()) {
                this.pushUrl('/time_driver');
                return;
            }
            if (this.canTimeMoney()) {
                this.pushUrl('/time_money');
                return;
            }
            if (this.canMoney()) {
                this.pushUrl('/money');
                return;
            }
            if (this.canAccount()) {
                this.pushUrl('/account');
                return;
            }
        };

        /**
         *
         * 结账类型
         */
        Vue.prototype.costDoneTypes = [
            {
                label: '公司收账',
                value: '1'
            }, {
                label: '车辆付账',
                value: '2'
            }, {
                label: '驾驶员反还',
                value: '3'
            }, {
                label: '公司反还',
                value: '4'
            }
        ];

        /**
         *
         * 是否类型
         */
        Vue.prototype.trueAndFalse = [
            {
                label: '是',
                value: true
            }, {
                label: '否',
                value: false
            }
        ];

        /**
         *
         * 是否类型
         */
        Vue.prototype.sexs = [
            {
                label: '男',
                value: '男'
            }, {
                label: '女',
                value: '女'
            }
        ];


        /**
         *
         * 是否可以访问报账管理
         */
        Vue.prototype.canAccount = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('account') !== -1) {
                return true;
            }
            return false;
        };
        /**
         *
         * 是否可以访问驾驶员管理
         */
        Vue.prototype.canMoney = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('money') !== -1) {
                return true;
            }
            return false;
        };

        /**
         *
         * 是否可以访问驾驶员管理
         */
        Vue.prototype.canDriver = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('driver') !== -1) {
                return true;
            }
            return false;
        };

        /**
         *
         * 是否可以访问车辆管理
         */
        Vue.prototype.canCar = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('car_manager') !== -1) {
                return true;
            }
            return false;
        };

        /**
         *
         * 是否可以访问时效证件-车辆证件管理
         */
        Vue.prototype.canTimeCar = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('time_car') !== -1) {
                return true;
            }
            return false;
        };

        /**
         *
         * 是否可以访问时效证件-驾驶员证件管理
         */
        Vue.prototype.canTimeDriver = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('time_driver') !== -1) {
                return true;
            }
            return false;
        };

        /**
         *
         * 是否可以访问时效证件-费用证件管理
         */
        Vue.prototype.canTimeMoney = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('time_money') !== -1) {
                return true;
            }
            return false;
        };
        /**
         *
         * 是否可以访问任务管理
         */
        Vue.prototype.canMission = function () {
            var user = this.$store.state.user;
            if (user.admin) {
                return true;
            }
            var permissions = user.permissions;
            if (permissions.indexOf('mission') !== -1) {
                return true;
            }
            return false;
        };

        /**
         *
         * 证件状态
         */
        Vue.prototype.allPermissions = [
            {
                label: '派车系统',
                value: 'mission'
            },
            {
                label: '车辆证件系统',
                value: 'time_car'
            },
            {
                label: '驾驶员证件系统',
                value: 'time_driver'
            }, {
                label: '费用证件系统',
                value: 'time_money'
            },
            {
                label: '车辆管理',
                value: 'car_manager'
            }, {
                label: '驾驶员管理',
                value: 'driver'
            }, {
                label: '财务管理',
                value: 'money'
            }, {
                label: '报账管理',
                value: 'account'
            },
        ];

        /**
         *
         * 返回当前年份
         */
        Vue.prototype.appendDurationTime = function (year, month, day) {
            var result = '';
            if (year > 0) {
                result += year + ' 年 ';
            }
            if (month > 0) {
                result += month + ' 月 ';
            }
            if (day > 0) {
                result += day + ' 天 ';
            }
            return result;
        };

        /**
         *
         * 返回当前年份
         */
        Vue.prototype.convertMoneySource = function (type) {
            if (type == null) {
                return '未知';
            }
            return this.moneySource[type].label;
        };

        /**
         *
         * 证件状态
         */
        Vue.prototype.timeStates = [
            {
                label: '全部',
                value: 0
            }, {
                label: '未过期',
                value: 1
            }, {
                label: '已过期',
                value: 2
            }
        ];
        /**
         *
         * 财务类型
         */
        Vue.prototype.moneySource = [
            {
                label: '手动输入',
                value: 0
            }, {
                label: '派车任务',
                value: 1
            }, {
                label: '时效证件',
                value: 2
            },
        ];

        /**
         *
         * 返回当前年份
         */
        Vue.prototype.returnCurrentYear = function () {
            return new Date().getFullYear();
        };

        // 获取建议等级 奖种类型 评审等级
        Vue.prototype.getSuggestLevel = function (awardType, level) {
            if (level == 0) {
                return '未投票';
            }
            switch (awardType) {
                case 1:
                    switch (level) {
                        case 1:
                            return '一等奖';
                        case 2:
                            return '二等奖';
                        case 3:
                            return '三等奖';
                        case 4:
                            return '不授';
                    }
                    return;
                case 2:
                    switch (level) {
                        case 1:
                            return '授奖';
                        case 4:
                            return '不授';
                    }
                    return;
            }
        };

        // 返回当前奖种
        Vue.prototype.returnAward = function (type) {
            switch (type) {
                case 1:
                    return '专利奖';
                case 2:
                    return '发明人奖';
            }
            return '专利奖';
        };

        // 返回奖种列表
        Vue.prototype.returnAwards = function () {
            var parts = [
                {
                    value: 1,
                    label: '专利奖'
                }, {
                    value: 2,
                    label: '专利发明人奖'
                }
            ];
            return parts;
        };

        // 返回奖种列表
        Vue.prototype.returnAwardsWithAll = function () {
            var parts = [
                {
                    value: 0,
                    label: '全部奖种'
                }, {
                    value: 1,
                    label: '专利奖'
                }, {
                    value: 2,
                    label: '专利发明人奖'
                }
            ];
            return parts;
        };


        /**
         * 返回表格内状态的宽度
         */
        Vue.prototype.tableStateWidth = 60;
        /**
         * 返回表格内价格的宽度
         */
        Vue.prototype.tablePriceWidth = 100;
        /**
         * 返回表格内显示序号的宽度
         */
        Vue.prototype.tableIndexWidth = 55;
        /**
         * 返回表格内勾选框的宽度
         */
        Vue.prototype.tableCheckWidth = 40;
        /**
         * 返回表格内人名的宽度
         */
        Vue.prototype.tablePeopleNameWidth = 150;
        /**
         * 返回表格内手机号的宽度
         */
        Vue.prototype.tablePhoneWidth = 120;

        /**
         * 返回表格内邮箱的宽度
         */
        Vue.prototype.tableEmailWidth = 175;

        /**
         * 返回表格内图标的宽度
         */
        Vue.prototype.tableIconWidth = 150;

        /**
         * 返回表格内时间的宽度
         */
        Vue.prototype.tableTimeWidth = 170;

        /**
         * 返回表格内编号的宽度
         */
        Vue.prototype.tableCodeWidth = 120;

        /**
         * 返回表格内密码的宽度
         */
        Vue.prototype.tablePasswordWidth = 80;
        /**
         * 返回表格内评审组的宽度
         */
        Vue.prototype.tableGroupWidth = 150;
        /**
         * 返回表格内分数的宽度
         */
        Vue.prototype.tableScoreWidth = 65;
        /**
         * 返回表格内百分比的宽度
         */
        Vue.prototype.tablePercentWidth = 85;
        /**
         * 返回表格内等级的宽度
         */
        Vue.prototype.tableLevelWidth = 70;
        /**
         * 返回表格内奖种的宽度
         */
        Vue.prototype.tableAwardWidth = 90;
        /**
         * 返回表格内年份的宽度
         */
        Vue.prototype.tableYearWidth = 70;

        // 保存菜单吗
        Vue.prototype.saveMenuIndex = function (menu) {
            this.$store.commit('setMenuIndex', menu);
        };


    }
};
